home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -serious- / programming / other / tandem / teaching / 41.asm < prev    next >
Assembly Source File  |  1999-09-06  |  2KB  |  71 lines

  1. * 41.asm     TLreqshow     version 0.01    8.6.99
  2.  
  3.  
  4.  include 'Front.i'         ;*** change to 'Tandem.i' to step thru TL's ***
  5.  
  6.  
  7. ; This program demonstrates the use of TLreqshow, which allows the user to
  8. ; view a series of lines, while your program calculates their contents
  9. ; dynamically. It takes some programming skill to get the most from
  10. ; TLreqshow.
  11.  
  12.  
  13. strings: dc.b 0
  14.  dc.b 'Some strings for your delectation (n.b. press <Help> for info)',0 ;1
  15.  dc.b 'String  ....',0 ;2
  16.  dc.b 'You have seen a TLReqshow requester (sigh!)',0 ;3
  17.  dc.b '(press <Help> for more help!)',0 ;4
  18.  dc.b 'Alas! This wonderful TLReqshow demo is finished!',0 ;5
  19.  dc.b '(Wasn''t it great!!! Applause! Applause!)',0 ;6
  20.  
  21.  ds.w 0
  22.  
  23.  
  24. clikd: ds.l 1 ;line selected
  25.  
  26.  
  27. * test program
  28. Program:
  29.  TLwindow #-1
  30.  move.l #-1,clikd                ;flag no line is yet clicked
  31.  TLreqshow #Hook,#1,#100,#17,#40,seek
  32.  beq.s Pr_quit                   ;go if TLreqshow fails
  33.  move.w #5,xxp_Help(a4)          ;help from line 5, 2 lines
  34.  move.w #2,xxp_Help+2(a4)
  35.  TLreqinfo #3,#2                 ;final message
  36.  
  37. Pr_quit:
  38.  rts
  39.  
  40.  
  41. * Act as hook for TLReqshow
  42. Hook:
  43.  tst.l d0             ;go if line clicked
  44.  bmi.s Ho_clkd
  45.  bsr Make             ;synthesize line d0, point a0 to it
  46.  rts
  47.  
  48. Ho_clkd:
  49.  cmp.l clikd,d0       ;line already highlighted?
  50.  bne.s Ho_on          ;no, go
  51.  move.l #-1,clikd
  52.  moveq #1,d0          ;highlighting off
  53.  rts
  54.  
  55. Ho_on:
  56.  move.l d0,clikd      ;remember which line is being highlighted
  57.  moveq #2,d0          ;turn highlighting on
  58.  rts
  59.  
  60.  
  61. * synthesize line d0
  62. Make:
  63.  TLstrbuf #2          ;string 2 to buffer
  64.  move.l a4,a0
  65.  addq.l #8,a0
  66.  move.l #'    ',(a0)  ;blank num
  67.  TLhexasc d0,a0       ;put num
  68.  clr.b (a0)
  69.  move.l a4,a0         ;point a0 to string as synthesized
  70.  rts
  71.